package com.bigShen.pattern.proxy.main

/**
 * @Auther: lei.shen
 * @Date: 2018/10/2 10:18
 * @Description:
 */
class ProxyDesc {

    /**
     *
     * 代理模式: 专人做专事,
     *   被代理着专注于做自己的事,别的事代理者做, 如 某人找对象, 只需专注于谈恋爱, 媒婆负责帮忙找对象
     *   Spring AOP, 媒婆， 中介, 日志 等
     *
     * 静态代理 : 模式固定, 只能是一对一的
     *
     * JDK动态代理 : 动态的，Spring AOP等,   (原理: 字节码重组)
     *
     * CGLIB : Code Generation Library 一个强大的开源项目, 可在运行期扩展Java类与实现Java接口, 字节码重组
     *
     *
     *     // 动态代理原理 : 字节码重组
     *     // 1. 拿到被代理类对象的引用, 通过反射获取所有接口
     *     // 2. JDK Proxy 类重新生产一个新的类,同时新的类实现被代理类所有接口
     *     // 3. 动态生成Java代码,把新加的业务逻辑方法由一定的逻辑代码去调用
     *     // 4. 编译新生成的Java代码.class
     *     // 5. 重新加载到JVM中运行
     *
     *
     */

}